// Bart Stukken & Joost Vangoidsenhoven
#include "Card.h"

Card::Card()
{
}

Card::Card(const Card& rhs)
{
	type = rhs.type;
	strength = rhs.strength;
	priority = rhs.priority;
}

Card::~Card()
{
}

void Card::SetStrength(unsigned int newStrength)
{
	strength = newStrength;
}

void Card::SetPriority(unsigned int newPriority)
{
	priority = newPriority;
}

void Card::SetForward()
{
	type = FORWARD;
}

void Card::SetBackward()
{
	type = BACKWARD;
}

void Card::SetLeftTurn()
{
	type = LEFT;
}

void Card::SetRightTurn()
{
	type = RIGHT;
}

unsigned int Card::GetStrength() const
{
	return strength;
}

unsigned int Card::GetPriority() const
{
	return priority;
}

bool Card::GetForward() const
{
	return type == FORWARD;
}

bool Card::GetBackward() const
{
	return type == BACKWARD;
}

bool Card::GetLeftTurn() const
{
	return type == LEFT;
}

bool Card::GetRightTurn() const
{
	return type == RIGHT;
}

Card& Card::Assign(const Card& rhs)
{
	type = rhs.type;
	strength = rhs.strength;
	priority = rhs.priority;

	return *this;
}

Card& Card::operator=(const Card& rhs)
{
	return Assign(rhs);
}
